L3-Network Layer.

Data Plane과 Control Plane의 차이는?

#Q 라우터는 여러개의 입출력 링크를 갖는가? 그리고 그 말은, 링크 계층을 여러개 갖는다는 의미인가?


Router

store-and-forward
IP를 이용하여 패킷을 전달하는 3계층 패킷 스위치.


네트워크 계층의 본질적인 역할은 호스트에서 호스트로 패킷(데이터 그램)을 전달하는 것이다.
프로세스가 다른 프로세스에 패킷(메시지)를 보내기 위해서는, 주소가 필요하다고 했었다. 하지만 주소만으로 정보가 자연히 전달될리는 당연히 없다. 누군가는 주소를 읽고 가야할 방향을 판단해주어야 한다. 그것이 네트워크 계층의 목적이다.

Forwarding (Data Plane)

모종의 패킷이 라우터에 도달했을 때, 라우터는 패킷이 가고자하는 목적지를 이해하고 가야할 길을 결정해줘야한다. 그것이 Router, 즉 Route를 알려주는 자의 본분이다. 이처럼 도착한 패킷이 어떤 링크로 가야하는지 결정하는 행위를 포워딩Forwarding이라 한다. 포워딩은 포워딩 테이블Forwarding Table에 의해 이뤄진다.

이처럼 실제 데이터 패킷을 다루고 처리하는 네트워크 계층의 역할의 한 부분을 데이터 평면Data Plane이라 부른다.

Routing (Control Plane)

그렇다면, 포워딩 테이블은 어떻게 만들어지는가? 그것은 라우팅 테이블Routing Table에 의해 만들어진다. 라우팅 테이블은 네트워크의 전체 구조에 대한 정보를 담고 있다. 즉, 라우터는 네트워크의 전반적 구조를 알고 있어야 한다. 패킷이 지나가지 않을 때에도, 네트워크 구조의 변화를 감지하고 업데이트 하여 라우팅 테이블을 업데이트하는데, 이러한 과정을 라우팅이라 한다.

이처럼 네트워크의 상황을 읽고 패킷들의 최적 경로를 정하는 네트워크 계층의 역할의 한 부분을 제어 평면Control Plane이라 부른다.


Switching (Data Plane)

각각의 링크들과 1대1로 연결된 포트를 통해 패킷(데이터그램)을 받고, 적절한 포트로 전달한다. 여기서 포트는 네트워크 계층의 인터페이스로서 하위계층인 데이터링크 계층의 서비스를 제공받는 창구로서 MAC주소를 통해 식별된다.

포워딩은 IP주소를 바탕으로 어디로 패킷을 보낼지 결정하는 과정이고, 스위칭은 그 결정에 따라 물리적으로 이동시키는 과정이다.


Control plane
라우팅 경로를 누가 갖고 있느냐에 따라 접근이 달라짐

  1. traditional routing algorithms: 라우터 각각이 라우팅 table 갖고있음.
  2. SDN software-defined networking: 서버가 저장하고 있음

1-> 라우터들간의 싱크를 맞춰줘야함.
2 -> 라우팅 테이블 원격 수정 가능: 편리함.

Network layer 특징: 최선형 서비스best-effort service 제공.

multistage switch
Queueing


IPv4 Datagram format

IMG_1198.jpeg|600

Flags

큰 패킷을 작게 분할한 패킷인가? 그렇다면, 몇번째 패킷인가? 를 안내함.

TTL (Time-to-live)

오류로 인해 패킷이 네트워크를 표류하더라도 자연스럽게 폐기되도록 함.

cf) MTU (Maximum Transmission Units):
로컬의 1개 패킷 최대 전송 용량은 1500byte로 정해져 있다.

IPv4 Addressing

Subnet

IP 주소를 효율적으로 사용하기 위해, 큰 네트워크를 작은 네트워크로 나누어 사용하는 것을 서브넷팅이라 한다. 먼저 네트워크의 단위는 라우터를 기준으로 나눌 수 있다. 작은 네트워크들을 합친게 큰 네트워크라고 한다면, 라우터는 네트워크와 네트워크를 잇는 장비라고 할 수 있다.

이때, 각각의 네트워크 인터페이스들은 서로를 식별할 수 있는 네트워크 수준의 주소인 IP를 필요로 한다. 예컨대 로컬에서 MAC주소로 식별되는 포트(인터페이스)에 네트워크 상에서 고유한 주소인 IP를 부여한다고 볼 수 있다.

포트에 IP 주소를 부여함으로써, 라우터는 진정으로 네트워크를 분할할 수 있게된다.

이렇게 고립된 네트워크는 서브넷이라 하며, i.e) 233.1.1.0/24 와 같은 방식으로 정의된다. 여기서 /24에 해당하는 부분을 서브넷 마스크Subnet Mask라 하며, 32비트 주소 중 앞 24비트를 바탕으로 서브넷을 구성했음을 의미한다.
서브넷에 속하는 주솟값들은 233.1.1.x에 해당하게 되어, 주소를 효율적으로 관리할 수 있게 된다.

CIDR (Classless InterDomain Routing)

서브넷의 일반화
a.b.c.d/x 와 같이 사용하여, x비트에 해당하는 부분을 subnet part로 끊는 것.
예컨대 233.1.1.0/23과 같은 표기를 가능하게 함.

DHCP (Dynamic Host Configuration Protocol)

주소를 자동으로 할당해주는 프로토콜이다. 예컨대 카페의 와이파이 인터넷을 사용하다가, 집에와서 집 와이파이를 사용하는 것은 내가 사용하는 기기의 IP가 고정되어있지 않고, 동적으로 그때그때 할당받는 것이다.

그런데 IP를 할당받기 전에, 어떻게 인터넷을 통해 IP를 할당받을 수 있겠는가?
답은 의외로 간단하다. broadcast 통신으로 주변에 있는 DHCP 서버에 요청을 한다. 그럼, DHCP 서버에서 IP 주소를 할당해서 넘겨준다. 물론, 이때에도 아직 IP 주소가 할당된 상태가 아니므로, broadcast로 뿌려서 할당해준다.

RARP ARP

CHAP4 55p

NAT (Network Address Translation)

로컬의 여러 호스트들이 하나의 공인 IP 주소를 공유한다. 로컬에서는 사설 IP를 통해 호스트들을 식별하며, 이러한 변환기능은 라우터(Gateway)에서 수행하며, 외부에서 내부자들을 식별할 수 없으므로 보안에도 도움된다.

PAT (Port Address Translation)

NAT의 한 종류. 포트 넘버도 변경.

IPv6

32-bit 주소 체계인 IPv4의 고갈로 인해, 더 많은 주소 수를 가진 128-bit 주소 체계인 IPv6의 필요성이 대두되고 있다.
하지만, 이미 표준화된 주소 체계인 IPv4를 IPv6로 바꾸기는 여간 쉬운게 아니다. 이전에 존재하는 모든 IPv4 주소 기기들을 폐기하거나 바꾸는건 말도 안되기 때문이다. 그래서 나온게 터널링tunneling이다.

Tunneling

IPv4를 IPv6로 전환하는 방법




Routing Table

Static Routing

Dynamic Routing